package cn.b.sky.form.dao;

import cn.b.sky.form.model.ScreenField;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ScreenFieldDao {

  /**
   * 
   * <strong>Title : insertScreenField<br></strong>
   * <strong>Description : </strong>添加界面字段信息<br> 
   * <strong>Create on : 2016-11-16 下午1:24:30<br></strong>
   * <p>
   * @param screenField
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertScreenField(ScreenField screenField);

  /**
   * 
   * <strong>Title : updateScreenField<br></strong>
   * <strong>Description : </strong>修改界面字段信息<br> 
   * <strong>Create on : 2016-11-16 下午1:24:16<br></strong>
   * <p>
   * @param screenField
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateScreenFieldByID(ScreenField screenField);

  /**
   * 
   * <strong>Title : getScreenFieldByCode<br></strong>
   * <strong>Description : </strong>根据工厂、业务类型、界面编号、版块编号、业务字段查询界面字段信息<br> 
   * <strong>Create on : 2016-11-16 下午1:23:26<br></strong>
   * <p>
   * @param siteCode
   * @param businessType
   * @param screenCode
   * @param sectionCode
   * @param businessField
   * @return
   * ScreenField
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  ScreenField getScreenFieldByCode(@Param("siteCode") String siteCode, @Param("businessType") String businessType,
                                   @Param("screenCode") String screenCode, @Param("sectionCode") String sectionCode,
                                   @Param("businessField") String businessField);

  /**
   * 
   * <strong>Title : getScreenFieldByID<br></strong>
   * <strong>Description : </strong>根据ID查询界面字段信息<br> 
   * <strong>Create on : 2016-11-16 下午1:23:56<br></strong>
   * <p>
   * @param id
   * @return
   * ScreenField
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  ScreenField getScreenFieldByID(@Param("id") Integer id);

  /**
   * 
   * <strong>Title : deleteScreenFieldByCode<br></strong>
   * <strong>Description : </strong>根据工厂、业务类型、界面编号、版块编号、业务字段删除界面字段<br> 
   * <strong>Create on : 2016-11-16 下午1:22:42<br></strong>
   * <p>
   * @param siteCode
   * @param businessType
   * @param screenCode
   * @param sectionCode
   * @param businessField
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteScreenFieldByCode(@Param("siteCode") String siteCode, @Param("businessType") String businessType,
                               @Param("screenCode") String screenCode, @Param("sectionCode") String sectionCode,
                               @Param("businessField") String businessField);

  /**
   * 
   * <strong>Title : deleteScreenFieldByID<br></strong>
   * <strong>Description : </strong>根据ID删除界面字段<br> 
   * <strong>Create on : 2016-11-16 下午1:22:29<br></strong>
   * <p>
   * @param id
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteScreenFieldByID(@Param("id") Integer id);

  /**
   * 
   * <strong>Title : selectScreenFieldBySectionCode<br></strong>
   * <strong>Description : </strong>获取产出版块下的所有字段<br> 
   * <strong>Create on : 2016-11-16 下午1:21:25<br></strong>
   * <p>
   * @param siteCode
   * @param businessType
   * @param screenCode
   * @param sectionCode
   * @return
   * List<ScreenField>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<ScreenField> selectScreenFieldBySectionCode(@Param("siteCode") String siteCode,
                                                   @Param("businessType") String businessType, @Param("screenCode") String screenCode,
                                                   @Param("sectionCode") String sectionCode);

  /**
   * 
   * <strong>Title : deleteScreenFieldBySection<br></strong>
   * <strong>Description : </strong>删除产出版块下的所有字段<br> 
   * <strong>Create on : 2016-11-16 上午11:12:43<br></strong>
   * <p>
   * @param siteCode
   * @param businessType
   * @param screenCode
   * @param sectionCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteScreenFieldBySection(@Param("siteCode") String siteCode, @Param("businessType") String businessType,
                                  @Param("screenCode") String screenCode, @Param("sectionCode") String sectionCode);

}
